package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_departamento database table.
 * 
 */
@Entity
@Table(name="smart_departamento")
@NamedQuery(name="SmartDepartamento.findAll", query="SELECT s FROM SmartDepartamento s")
public class SmartDepartamento implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="sm_scdepartamento")
	private BigDecimal smScdepartamento;
	
	@Column(name="sm_codepartamento")
	private String smCodepartamento;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Column(name="sm_dsdepartamento")
	private String smDsdepartamento;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	//bi-directional many-to-one association to SmartCiudad
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smScdepartamento", fetch = FetchType.LAZY)
	private List<SmartCiudad> smartCiudad;

	//bi-directional many-to-one association to SmartPais
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scpais", referencedColumnName="sm_scpais")
	private SmartPais smartPais;

	public SmartDepartamento() {
	}

	public BigDecimal getSmScdepartamento() {
		return this.smScdepartamento;
	}

	public void setSmScdepartamento(BigDecimal smScdepartamento) {
		this.smScdepartamento = smScdepartamento;
	}

	public String getSmCodepartamento() {
		return smCodepartamento;
	}

	public void setSmCodepartamento(String smCodepartamento) {
		this.smCodepartamento = smCodepartamento;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public String getSmDsdepartamento() {
		return this.smDsdepartamento;
	}

	public void setSmDsdepartamento(String smDsdepartamento) {
		this.smDsdepartamento = smDsdepartamento;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public List<SmartCiudad> getSmartCiudads() {
		return this.smartCiudad;
	}

	public void setSmartCiudad(List<SmartCiudad> smartCiudad) {
		this.smartCiudad = smartCiudad;
	}

	public SmartCiudad addSmartCiudad(SmartCiudad smartCiudad) {
		getSmartCiudads().add(smartCiudad);
		smartCiudad.setSmartDepartamento(this);

		return smartCiudad;
	}

	public SmartCiudad removeSmartCiudad(SmartCiudad smartCiudad) {
		getSmartCiudads().remove(smartCiudad);
		smartCiudad.setSmartDepartamento(null);

		return smartCiudad;
	}

	public SmartPais getSmartPais() {
		return this.smartPais;
	}

	public void setSmartPais(SmartPais smartPais) {
		this.smartPais = smartPais;
	}

}